if __name__ == '__main__':
    """
    set是一个成员不重复的无序集合
    无法通过下标访问
    用花括号定义，也可以用set(iterable)定义，其中iterable在初期可以简单理解为list tuple
    """
    # {}定义 成员会自动去重，且会无序
    devs = {'192.168.1.1', '192.168.1.2', '192.168.1.3', '192.168.1.1'}
    print('set devs：', devs)

    # 用可迭代访问的对象构建set，可迭代的初期可以简单理解为list tuple
    dev_list = ['192.168.1.1', '192.168.1.2', '192.168.1.3', '192.168.1.1']
    devs = set(dev_list)
    print('set devs：', devs)

    # set计算
    # 可以用于去重和计算交并差集合
    devs1 = {'192.168.1.1', '192.168.1.2', '192.168.1.3'}
    devs2 = {'192.168.1.1', '192.168.1.4', '192.168.1.5'}

    # 计算并集（相同的部分）
    print('并集devs1+devs2：', devs1 | devs2)

    # 计算差集（只存在在第一个集合，不存在在第二个集合中的元素集合）
    print('交集devs1-devs2：', devs1 - devs2)

    # 计算交集（在两个集合中都存在）
    print('交集devs1&devs2', devs1 & devs2)

    # 对称差集（与差集相反，存在且只存在在一个集合里的元素的集合）
    print('交集devs1^devs2', devs1 ^ devs2)
